1. Field of the Invention
The preferred embodiments of the present invention are directed generally to computer systems and computer system architectures for implementing hot pluggable main memory. More particularly, the preferred embodiments are directed to servers having an architecture that supports hot-pluggable memory capable of fault tolerant and non-fault tolerant modes. More particularly still, the preferred embodiments are directed to implementing a computer system capable of accommodating two or more hot pluggable memory boards and capable of switching from a non-fault tolerant memory mode to a fault tolerant mode upon the hot insertion of a new memory board.
2. Background Information
Computer system designs have been developed for a variety of applications. For some mission critical applications (e.g., Internet Service Providers) it is more imperative that the system function properly and continuously. Some businesses or organizations operate 24 hours per day, 7 days per week and thus, as much as possible, should have their computer systems up and running all of the time. Even for those organizations that do not operate 24 hours per day, it still may be highly desirable for the computer systems to remain fully operational during normal business hours.
Maintaining a computer system fully and continuously operational can be very challenging since failures of computer system components can and will occur and can occur without warning. In conventional computer systems, such failures can bring the system operations to a halt. During a maintenance event, the computer will be shut down to permit the defective part to be replaced. Then, the system is rebooted. This process can be very time consuming and bothersome in any application, particularly in mission critical applications.
The desire for the elimination, or at least minimization, of down time has led computer system designers to build fault tolerant features into the system's design. For example, the main memory of a computer can be made fault tolerant by designing the system to accommodate two redundant memory boards. Each memory board may be identical to the other board. With redundant memory boards, a “mirroring” mode can be implemented such as that described in copending application Ser. No. 10/179,001, entitled “Computer System Architecture With Hot Pluggable Main Memory Boards” in which one board is designated the “active” board and the other is operated in a mirrored mode. As such, all memory writes are performed to both boards so that both boards have identical data. A memory read is taken from the active board. In this way, if one board fails, the other board still has all of the needed data (i.e., no data is lost) and the system can continue operating. If desired, the failed memory can be replaced, if at all, at a convenient time that has little impact on the organization's business activity.
Such a system can be shipped to a customer, however, with only one memory board in place. This single memory board configuration, of course, will be non-fault tolerant meaning that a failure of the single memory board will cause the memory subsystem to fail altogether. If the user desires to upgrade the system into a fault tolerant memory mode, the user will have to add a second memory board. This upgrade will require the user to power down the computer, insert the second memory board, reboot the system into a configuration utility in which the user will select the mirroring mode, and then reboot the system back into the operating system. The process itself of switching to a fault tolerant mode requires the system to be taken off-line which, as noted above, is undesirable. Accordingly, an improvement which addresses this problem would be highly desirable.